Computer technology continues to improve in the field of computer networks or networking. Networking refers generally to the scenario wherein several different remote computer users are electronically connected together to communicate with each other through the use of their computers. For example, computer networks are used to provide a direct communications link between users having a common interest, such as employees of a corporation. Such networks are generally referred to as local area networks (LAN) or wide area networks (WAN). More recently, large public networks, more commonly collectively known as the Internet, are being utilized by computer users to access and communicate with large numbers of remote users and other remote networks. Indeed, computers of all types and from all over the world are being connected together through appropriate networks. As a result, networking of an ever greater number of devices together over a LAN, WAN, or the Internet requires enhancement of existing networking capabilities to ensure proper, error-free communications.
The computer or computer devices connected together through a network can include any device that has the proper hardware and software to be compatible with the requirements of the network. Personal computers (PC's) or workstations are usually one of the more prevalent computer devices coupled to and used on a network. Within a LAN or WAN, a server might also be utilized. A server is essentially a computer that can be used by other personal computers or non-PC devices, such as a printer or disk drive, to further facilitate networking those devices together.
The various devices of the network must communicate with each other, and therefore, each device must be able to understand each other device, even though the devices have different functions or are made by different manufacturers. In order to allow the various network devices to communicate with each other, networks such as LANs and WANs use a common communications protocol which is shared by the various devices. A network communications protocol is a common set of hardware and software standards which must be implemented by the network devices so that they are linked together and can properly communicate or "talk" to each other and other devices over the network. Network protocols are developed by computer industry groups or individual manufacturers, and are widely accepted by various different manufacturers so that their products are network compatible and thus commercially marketable.
One such popular computer industry group that has developed a widely used network communications protocol is the Institute of Electrical and Electronics Engineers (IEEE). The IEEE has developed the IEEE 802.2 logical link control (LLC) network protocol, which is a software protocol used by the devices on a network to interface with other devices on the network, such as a LAN or WAN. Of course, other types of protocols may be used on the network along with the IEEE 802.2 protocol. One type of connection of the IEEE 802.2 protocol is a Type 2 connection, which uses a series of internal system timers, or protocol timers, to establish and maintain the communications connection (link) between two remote devices of a network that are using the protocol. Within the protocol, the devices are associated with link stations that are connected together by a logical connection or link. A link between two devices and their link stations is defined by the software associated with those devices. For example, the timers in the protocol are used to determine if a certain link station exists on the network, and are also used to establish that communications between two link stations are proceeding properly. During communications, the link stations send frames back and forth.
Each timer is made up of a series of system time segments or "ticks" which are usually generated by the operating system. For example, a link timer for the IEEE 802.2 protocol might comprise 30 system ticks. When a timer associated with a particular link "times out" or expires (i.e., the timer reaches its last tick), the device sends a data frame to the other device that it is talking to. By passing the data frames back and forth over the link, the remote devices (link stations) on the network talk to each other. As long as the station associated with the network link is able to transmit the data frames at the expiration of the timer, communications will proceed. However, if the network is not able to handle the amount of data to be transmitted upon the expiration of the timer or timers for the particular links of the network, problems in the communication procedure will occur.
Specifically, under the IEEE 802.2 protocol, at least one timer will typically be running for each link in the network, and that timer will be independent of the timers for the other links. Preferably, when the timer of a particular link expires, the frames associated with that link and that timer expiration will be transmitted or will otherwise be processed. Since the various links operate independently, there will be occasional excess or "burst" transmit demands to send frames over the network. The physical hardware port associated with a particular link may not be able to handle such burst data rates. Therefore, a data storage capability, referred to as a transmit queue, is used in combination with the IEEE 802.2 protocol for queuing the data frames until they can be handled. The queue for a typical LAN may be able to handle 8 to 64 data frames, for example, so that the frames may be properly sent in time. However, while the queue is able to handle certain burst transmit demands, it has a finite length and, under certain conditions, will also become full. When the queue is full, and a device tries to transmit a data frame, the data frame will be dropped and will not be transmitted. Dropped or lost data frames are not seen by the IEEE 802.2 protocol and thus cause problems.
As a more specific example, multiple links for a networked device will usually share or will be multiplexed through the same transmit queue. Therefore, multiple link timers corresponding to those multiple links will be associated with that queue. If all of the link timers expired at the same time (i.e., on the same system tick), the IEEE 802.2 protocol will attempt to transmit the frames associated with all of those link timers to the queue at the same time. Consequently, there is a burst of attempts to enqueue frames to the transmit queue. When the queue is full, the frames are dropped. When such frames are repeatedly dropped for a particular link station, the link station will eventually disconnect according to IEEE 802.2 protocol procedures. Such link station disconnection is undesirable and causes communication problems. Thus, the number of links which may be multiplexed by a device without disconnection is reduced by the possibility of such bursts occurring.
Therefore, a significant need exists for improving network communications. More specifically, a need exists with respect to handling the transmit queues in an IEEE 802.2 protocol environment to prevent undesirable disconnection between link stations. A need further exists for better handling of multiple timer expiries to increase the number of users and respective links on a multi-user device within the network.